#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "subsistitution.h"

void Swap(char *s, int i, int j)
{
    char temp = s[i];
    s[i] = s[j];
    s[j] = temp;
}

void generateKey(char *key)
{
    for (int i = 0; i < 26; i++)
    {
        key[i] = 'a' + i;
    }
    srand(time(NULL));           // 随机数种子
    for (int i = 25; i > 0; i--) // 从最后往前打乱
    {
        int j = rand() % i;
        Swap(key, i, j);
    }
    printf("生成的key : %s\n", key);
}

// 加密算法
void Encrypt(char *msg, char *key)
{
    for (int i = 0; i < strlen(msg); i++)
    {
        if (msg[i] <= 'z' && msg[i] >= 'a')
        {
            msg[i] = key[msg[i] - 'a'];
        }
    }
}

//解密函数
void Decrypt(char *msg, char *key)
{
    for (int i = 0; i < strlen(msg); i++)
    {
        if (msg[i] <= 'z' && msg[i] >= 'a')
        {
            for (int j = 0; j < 26; j++)
            {
                if (msg[i] == key[j])
                {
                    msg[i] = 'a' + j;
                    break;
                }
                
            }
            
        }
    }
}